In most modern computer systems, peripheral devices communicate with the host processor and system memory over a host bus, such as the PCI Express® (PCIe®) bus. Such peripheral devices may include, for example, a network interface controller (NIC), a solid state drive (SSD), and various accelerator modules, such as a graphics processing unit (GPU), and other add-on devices. PCIe offers numerous advantages in communications between the host processor and peripheral devices, including high throughput, reliable performance, advanced error detection and reporting, and native hot-plug functionality, as well as hardware support for input/output (I/O) virtualization.